#include <stdio.h>
#include <string.h>

int main(int argc, const char *argv[])
{
	char s1[10] = "abcd";
	int ret = strlen(s1); // 如果后面会使用这个结果 就定义变量保存返回值
	printf("ret = %d\n", ret); // 4

	// 如果后面不会用到这个结果 只是想看一看的话 直接打印到终端也可以
	printf("%ld\n", strlen(s1)); // 4

	// 注意：
	// 要区分 sizeof 和 strlen 
	// sizeof 计算的是变量或者类型占用的内存空间的大小
	// strlen 计算的是第一个'\0'之前有效字符的个数
	char s2[] = "hello world";
	printf("%ld\n", strlen(s2)); // 11
	printf("%ld\n", sizeof(s2)); // 12

	char s3[100] = "abc";
	printf("%ld\n", strlen(s3)); // 3
	printf("%ld\n", sizeof(s3)); // 100

	// strlen 计算长度时  遇到 '\0' 就结束了
	char s4[20] = "abc\0xyz\0hello\0";
	printf("%ld\n", strlen(s4)); // 3

	// 如果不是字符串 就不能使用strlen来计算长度!!!	
	char s5[5] = {'a', 'b', 'c', 'd', 'e'};
	printf("%ld\n", strlen(s5)); // 结果不可预知

	char s6[6] = {'a', 'b', 'c', 'd', 'e'};
	printf("%ld\n", strlen(s6)); // 5

	return 0;
}
